package com.yserp.project.erp.basic.goodstype.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yserp.framework.web.domain.Ztree;
import com.yserp.project.erp.basic.goodstype.domain.BasisGoodsType;

import java.util.List;

/**
 * 商品类别Service接口
 * 
 * @author yserp
 * @date 2022-06-29
 */
public interface IBasisGoodsTypeService extends IService<BasisGoodsType> {
    /**
     * 查询商品类别
     * 
     * @param id 商品类别主键
     * @return 商品类别
     */
    public BasisGoodsType selectBasisGoodsTypeById(Long id);

    /**
     * 查询商品类别列表
     * 
     * @param basisGoodsType 商品类别
     * @return 商品类别集合
     */
    public List<BasisGoodsType> selectBasisGoodsTypeList(BasisGoodsType basisGoodsType);

    /**
     * 新增商品类别
     * 
     * @param basisGoodsType 商品类别
     * @return 结果
     */
    public int insertBasisGoodsType(BasisGoodsType basisGoodsType);

    /**
     * 修改商品类别
     * 
     * @param basisGoodsType 商品类别
     * @return 结果
     */
    public int updateBasisGoodsType(BasisGoodsType basisGoodsType);

    /**
     * 删除商品类别信息
     * 
     * @param id 商品类别主键
     * @return 结果
     */
    public int deleteBasisGoodsTypeById(Long id);

    /**
     * 查询商品类别树列表
     *
     * @return 所有商品类别信息
     */
    public List<Ztree> selectGoodsTypeTree();

    /**
     * 校验商品类别编码是否唯一
     *
     * @param goodsTypeCode 商品类别编码
     * @return 结果
     */
    public String checkGoodsTypeCodeUnique(String goodsTypeCode);

    /**
     * 根据父Id 查询子类的数量
     *
     * @param parentId 父ID
     * @return 结果
     */
    public int selectGoodsTypeCount(Long parentId);
}
